Zig (langage)

Zig
Logo.

Date de première version Voir et modifier les données sur Wikidata
Paradigme Fonctionnel, impératif
Auteur Andrew Kelley
Développeur Andrew Kelley, Open Source
Dernière version 0.12.0 (20/04/2024)
Typage Fort, statique
Influencé par C, C++, LLVM IR, Go, Rust, JavaScript
Écrit en C++, Zig
Systèmes d'exploitation Multiplateforme
Licence Licence MIT
Site web https://ziglang.org/
Extensions de fichiers .zig

Zig est un langage de programmation compilé impératif polyvalent, typé statiquement, conçu par Andrew Kelley[2],[3]. Le langage est conçu pour la «robustesse», l'«optimalité» et la «maintenabilité»[4],[5], prenant en charge les génériques et la réflexion au moment de la compilation, la compilation croisée et la gestion manuelle de la mémoire[6]. Un objectif majeur du langage est de concurrencer (et d'améliorer) C[7],[8], tout en s'inspirant également de Rust[9],[10], entre autres.

Zig possède de nombreuses fonctionnalités pour la programmation de bas niveau, notamment des types composés (struct) avec zéro padding, des entiers de taille arbitraire[11] et différents types de pointeurs[12].

Le compilateur, originellement écrit en C++, a lentement été réécrit en Zig pour être aujourd'hui disponible dans sa version entièrement implémentée en Zig, nommée Stage 2. Il utilise LLVM 11[13] comme back-end[14] , prenant en charge plusieurs de ses cibles natives[15], bien que d'autres back-ends soient en développement. Le compilateur est un logiciel libre et open source distribué sous la licence MIT[16]. Le compilateur Zig fournit la possibilité de compiler du C et du C++, similaire à Clang en utilisant respectivement la commande "zig cc" et "zig c++"[17]. Le langage de programmation Nim prend en charge l'utilisation de zig cc comme compilateur C. [18]

  1. « Release 0.13.0 »
  2. (en-US) « Zig has all the elegant simplicity of C, minus all the ways to shoot yourself in the foot », JAXenter, (consulté le )
  3. (en-US) « Tired of C? New programming language Zig aims to be more pragmatic and readable », (consulté le )
  4. (en) Yegulalp, « New challenger joins Rust to topple C language », InfoWorld, (consulté le )
  5. (en-US) « Zig language and C », Sina Corp, (consulté le )
  6. (en-US) « The Zig Programming Language », ziglang.org (consulté le )
  7. (en-US) « Mozilla's Observatory, the Zig programming language, and uSens' VR/AR SDK—SD Times news digest: Aug. 29, 2016 », SD Times, (consulté le )
  8. (en-US) « The Zig Programming Language », ziglang.org (consulté le )
  9. (en) Company, « Sudo Null - IT News for you », SudoNull (consulté le )
  10. (en-US) Kelley, « Unsafe Zig is Safer Than Unsafe Rust », andrewkelley.me (consulté le )
  11. (en) Tim Anderson 24 Apr 2020 at 09:50, « Keen to go _ExtInt? LLVM Clang compiler adds support for custom width integers », www.theregister.co.uk (consulté le )
  12. (en-US) « Documentation - The Zig Programming Language », ziglang.org (consulté le )
  13. (en-US) « SD Times news digest: C++20 concepts in Visual Studio 2010 version 16.3, Bootstrap to drop IE support, and Zig 0.60 released », SD Times, (consulté le )
  14. (en-GB) « A Reply to The Road to Zig 1.0 », www.gingerbill.org, (consulté le )
  15. (en-US) « The Zig Programming Language », ziglang.org (consulté le )
  16. (en) « ziglang/zig », GitHub (consulté le )
  17. (en-US) « 0.6.0 Release Notes · The Zig Programming Language », ziglang.org (consulté le )
  18. (en) « Add support for 'zig cc' as C compiler. by hessammehr · Pull Request #13757 · nim-lang/Nim », GitHub (consulté le )

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Tubidy